\documentclass[french]{beamer}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
%\usepackage{epsfig}
\usepackage{amsmath}
\usepackage{xmpmulti}
\usepackage{listings}
\usepackage{diagrams}
\usepackage{pgf,pgfarrows}

\usecolortheme{rose}
\useoutertheme{infolines}
\useinnertheme{rectangles}
\usefonttheme[onlymath]{serif}

\title[]{Composant de \emph{mapping} Java-LDAP}
\author[A.Bailly]{Arnaud Bailly}
\institute[Norsys]{
NORSYS SAS  \\
ZAC du Moulin \\
F-59710 Ennevelin C\'edex}
\date{\today}

\begin{document}
\lstset{basicstyle=\footnotesize\sffamily,frame=single}

\setbeamercolor{quote}{parent={block}}
\setbeamercolor{postit}{fg=blue,bg=orange!75}

\frame{\titlepage}

\section[Plan]{}
\frame{\tableofcontents}

\section{Problème}

\AtBeginSection[]
{
  \begin{frame}<beamer>
      \tableofcontents[currentsection]
  \end{frame}
}

\begin{frame}
\frametitle{Problème}

Trouver une solution pour:
\begin{enumerate}
  \item Faciliter l'accés aux ressources d'un annuaire dans une
    applications Java/J2EE
  \item Produire facilement des applications d'administration
    d'annuaires
  \item Envisager l'intégration d'autres sources de données (SGBD,
    XML, fichiers plats)
  \item Simplifier la programmation et la configuration des ressources
    d'un annuaire
\end{enumerate}

\end{frame}

\begin{frame}
\frametitle{Solutions existant}

\begin{overlayarea}{\textwidth}{\textheight}

\begin{block}{Calendra}
    Progiciel de génération d'applications d'annuaires
    \begin{itemize}
      \item<only@1> très complet
      \item<only@1> très cher (coût des licences suite au rachat 
        par BMC)
      \item<only@1> architecture fermée
    \end{itemize} 
\end{block}

\begin{block}<2->{Autres frameworks open-source}
    \begin{tabular}{rp{.7\textwidth}}
        Castor DSML	& Framework permettant d'exécuter des requêtes LDAP
        sur un annuaire à partir de fichiers XML DSML \\
        
        Jldap	& API Java permettant d'accéder, gérer, modifier et
        sélectionner des informations dans des annuaires LDAP. \\
        LdapJdbc	& API de connexion permettant  requêter un annuaire
        LDAP par SQL \\
        Directory4J	& Framework permettant de faire un mapping Java Bean /
        Directory en Java \\
    \end{tabular}
\end{block}
\end{overlayarea}

\end{frame}



% \begin{overlayarea}{\textwidth}{\textheight}
%     \begin{block}{Contexte scientifique}
%         Laboratoire d'Informatique Fondamental de Lille
%         \begin{itemize}
%           \item<only@2> Moteur dans le développement des architectures
%             à base de composants, l'ingénierie des modèles
%             $\longrightarrow$ \textsf{OpenCCM}, membre de
%             l'\textsf{OMG}, programme \emph{COLORS} (CPER)
%           \item<only@2> Expertise dans le domaine des langages formels et de
%             la vérification : automates, langages de
%             synchronisations, logiques, ...
%         \end{itemize}        
%     \end{block}

%     \begin{block}<3->{Contexte économique}
%         NORSYS
%         \begin{itemize}
%           \item \textsf{SSII} implantée à Lille, Paris, Lyon.
%             Spécialisée dans le développement de
%             \emph{logiciels à façon} pour la banque,
%             l'assurance, les administrations, la distribution ...
%           \item Développement d'applications réparties sur
%             plateforme Java/J2EE
%           \item Démarche de promotion de l'innovation et de R\&D en
%           ingénierie logicielle (4 thèses)
%         \end{itemize}      
%     \end{block}
% \end{overlayarea}
% \end{frame}

\section{Solution}

\begin{frame}
\frametitle{Speculoos}

Développement spécifique d'un \emph{composant} permettant de répondre
aux besoins en mode open-source: mappnig Java-LDAP orienté métier.

\includegraphics[width=.6\textwidth]{archi-general.pdf}

\end{frame}

\begin{frame}
\frametitle{Objectifs}

    \begin{itemize}
      \item Fournit une vue métier (objet) des données
        extraites ou insérées dans l'annuaire
      \item Masque la  complexité de manipulation des requêtes LDAP en Java
      \item Simplifie la gestion de sources de données multiples (LDAP avec pooling)
    \end{itemize}

\end{frame}

\begin{frame}
    \frametitle{Fonctionnalités}
    \begin{enumerate}
      \item opérateurs de mapping génériques (union, composition séquentielle)
      \item paramétrage en XML du mapping JNDI/LDAP
      \item structure modulaire du paramétrage avec substitutions de variables
        au chargement et/ou à l'exécution
      \item pool de connexion JDNI avec limite supérieure stricte[3]
      \item abstraction de toutes les méthodes JNDI/LDAP standards
    \end{enumerate}
\end{frame}

\begin{frame}
    \frametitle{Fonctionnalités (2)}
    \begin{enumerate}
      \item intégration dans n'importe quelle application Java, quel que soit
        son contexte (J2EE ou pas)
      \item opération de jointure entre deux requêtes
      \item règles de validation des inputs (expressions rationnelles, type
        d'objet)
      \item typage Java des champs avec converions automatisée vers/depuis les
        chaînes de caractères et vers/depuis des blobs.
      \item descripteurs de maps avec héritage, valeurs par défauts et typage
    \end{enumerate}
\end{frame}

\begin{frame}
\frametitle{Mise en \oe uvre}
    
\begin{enumerate}
  \item Définition d'un descripteur XML de mapping (console)
  \item Création d'une instance de \textsf{MapperManager}
  \item Configuration par chargement du descripteur ou API
  \item Utilisation des \emph{mappers} par API Java
\end{enumerate}

\end{frame}

\section{Évolutions}

\begin{frame}
    \frametitle{Évolutions}
Intégration de composants open-source pour construire une solution de
développement rapide d'applications d'annuaires et de données
semi-structurées (XML)

    \begin{itemize}
      \item Génération automatique de squelettes d'applications fonctionnels
      \item Ajout de nouveaux \emph{backend}
      \item Transactions
      \item Production et consommation d'événements de workflow
    \end{itemize}
\end{frame}

\end{document}

